package org.finalministry.objects;

import java.util.ArrayList;
import java.util.List;

import org.finalministry.objects.address.Address;
import org.finalministry.objects.address.Country;

/**
 * A contact represents a real person in a territory, a lastname, address and
 * some flags
 * 
 * @author admin
 * 
 */
public class Contact extends FlagTagNoteAbleBase {

	private Long id;
	private Long congregationID;
	private String lastName;
	private Address address;
	private Long territoryID;
	private Country language;
	private List<ContactTypeEnum> contactType;

	public Contact() {

		contactType = new ArrayList<ContactTypeEnum>();
	}

	public Contact(Long congregationID, String lastName, Address address, Long territoryID, Country language) {
		super();
		this.setCongregationID(congregationID);
		this.lastName = lastName;
		this.address = address;
		this.territoryID = territoryID;
		this.language = language;

		contactType = new ArrayList<ContactTypeEnum>();
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public Long getAddressID() {
		return address.getId();
	}

	public Long getTerritoryID() {
		return territoryID;
	}

	public void setTerritoryID(Long territoryID) {
		this.territoryID = territoryID;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Long getCongregationID() {
		return congregationID;
	}

	public void setCongregationID(Long congregationID) {
		this.congregationID = congregationID;
	}

	public Address getAddress() {
		return address;
	}

	public void setAddress(Address address) {
		this.address = address;
	}

	public Country getLanguage() {
		return language;
	}

	public void setLanguage(Country language) {
		this.language = language;
	}

	/**
	 * These are just the 4 typical flags for a contact. For more contacts get a
	 * complete list from the DAO.
	 * 
	 * @return List of ContactTypeEnum
	 */
	public List<ContactTypeEnum> getContactType() {
		return contactType;
	}

	public void setContactType(List<ContactTypeEnum> contactType) {
		this.contactType = contactType;
	}

}
